Estudiante: Niccolo Antonio Zúñiga Bogarín C08690.

Preparativos.

Cargamos los paquetes que se necesitan para desarrollar la tarea correctamente.

#carga de paquetes
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
library(rgdal)
library(raster)
library(spData)

Capas para trabajar.

Todas las capas del trabajo, están: Primates, cantones y altitud.

# Primates de Costa Rica
primates_cr <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
    options = c(
      "X_POSSIBLE_NAMES=decimalLongitude",
      "Y_POSSIBLE_NAMES=decimalLatitude"
    ),
    quiet = TRUE
  )
# Capa geespacial de cantones
cantones <-
  st_read(
    "https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
    quiet = TRUE
  )

Asignación de CRS.

st_crs(primates_cr) = 4326

Unimos la capa de primates y cantones.

# Cruce espacial con la tabla de cantones, para obtener el nombre del cantón
primates_cr <- 
  primates_cr %>%
  st_join(cantones["canton"])

Agregamos la capa raster y establecemos un limite.

#capa raster
alt <- getData(
  "worldclim",
  var = "alt",
  res = .5,
  lon = -84,
  lat = 10
)

# Capa de altitud recortada para los límites aproximados de Costa Rica
altitud <- crop(alt, extent(-86, -82.3, 8, 11.3))

Tabla con registros.

Con la capa de primates con cantones podemos hacer la tabla de registros con las varables que se solicitaron además con la interfaz en español con el comando ¨lenguage¨.

primates_cr %>%
  st_drop_geometry() %>%
 dplyr::select(family, species, stateProvince, canton, eventDate) %>%
  datatable(
    colnames = c("Familia",
                 "Especie",
                 "Provincia",
                 "Cantón",
                 "Fecha"),
    options = list(
      searchHighlight = TRUE,
      class = 'cell-border stripe',
      language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
    ))

Pie Chart

Creamos un nuevo ¨Data¨ con las variables para poder hacer el pie Chart y con la interfaz en español y las variables requeridas.

gresgistros <-
  data.frame("Categorie" = rownames(primates_cr), primates_cr)
gresgistros3 <-
  gresgistros[, c('Categorie', 'species', 'recordNumber')]
plot_ly(gresgistros3,
        labels = ~ species ,
        type = 'pie') %>%
  config(locale = "es") %>%
  layout(
    title = 'Cantidad de resgistro de las especies y el porcentaje.',
    xaxis = list(
      showgrid = FALSE,
      zeroline = FALSE,
      showticklabels = FALSE
    ),
    yaxis = list(
      showgrid = FALSE,
      zeroline = FALSE,
      showticklabels = FALSE
    )
  )

filtrado de Especies

Creamos nuevos ¨DATAS¨ para cada uno de los nombres de los primtates para trabajar con cada uno independinete.

Ateles <- primates_cr %>%
  filter(species == "Ateles geoffroyi")
Cebus <- primates_cr %>%
  filter(species == "Cebus capucinus")
Alouatta <- primates_cr %>%
  filter(species == "Alouatta palliata")
Saimiri <- primates_cr %>%
  filter(species == "Saimiri oerstedii")

Creamos una paleta para usar en la capa raster.

palet <- colorNumeric(
  c("#006400", "#FFFF00", "#0000FF"), 
  values(altitud)
)

Mapa de distribucion

Con la capa de primates, la de altitud y capa de puntos para cada uno de los primates, con tres capas base y colores adecuados.

# Mapa de registros de presencia
primates_cr %>%
  dplyr::select(stateProvince,
         canton,
         eventDate,
         species) %>%
  leaflet() %>%
  addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
  addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
  addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
  addRasterImage(
    altitud,
    colors = palet,
    opacity = 0.8,
    group = "Altitud"
  ) %>%
  addCircleMarkers(
    data = Ateles,
    stroke = F,
    radius = 2,
    fillColor = 'black',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Ateles"
  ) %>%
  addCircleMarkers(
    data = Cebus,
    stroke = F,
    radius = 2,
    fillColor = 'Brown',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Cebus"
  ) %>%
  addCircleMarkers(
    data = Alouatta,
    stroke = F,
    radius = 2,
    fillColor = 'blue',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Alouatta"
  ) %>%
  addCircleMarkers(
    data = Saimiri,
    stroke = F,
    radius = 2,
    fillColor = 'red',
    fillOpacity = 1,
    popup = paste(
      primates_cr$stateProvince,
      primates_cr$canton,
      primates_cr$eventDate,
      primates_cr$species,
      sep = '<br/>'
    ),
    group = "Saimiri"
  ) %>%
  addLayersControl(
    baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
    overlayGroups = c("Ateles", "Alouatta", "Cebus", "Saimiri", "Altitud" )
  ) %>%
  addMiniMap(
    tiles = providers$Stamen.OpenStreetMap.Mapnik,
    position = "bottomleft",
    toggleDisplay = TRUE
  )
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded ellps WGS 84 in Proj4 definition: +proj=merc +a=6378137
## +b=6378137 +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +k=1 +units=m +nadgrids=@null
## +wktext +no_defs +type=crs
## Warning in showSRID(uprojargs, format = "PROJ", multiline = "NO", prefer_proj =
## prefer_proj): Discarded datum World Geodetic System 1984 in Proj4 definition